-- 创建箭垒技能对象
local bojianlei = fk.CreateSkill {
    name = "bojianlei",
}

-- 加载技能的翻译表，包括技能名称和描述
Fk:loadTranslationTable({
    ["bojianlei"] = "箭垒",
    [":bojianlei"] = "你可以弃置两张“失”标记并对其他角色使用一张【万箭齐发】",
    
    -- 发动技台词（按顺序对应不同触发场景）
    ["$bojianlei1"] = "以失旗诱敌，以箭雨制之——放箭！",
    ["$bojianlei2"] = "箭如骤雨，垒似坚城！敌将何在？",
})

-- 为箭垒技能添加主动效果
bojianlei:addEffect("active", {
    anim_type = "offensive",
    prompt = "是否释放箭垒技能？",
    card_num = 0,
    target_num = 0,

    -- 判断技能是否可以使用的函数
    can_use = function(self, player)
        -- 获取标记值，默认为0
        local shiMarks = player:getMark("@shi") or 0
        -- 检查玩家是否拥有箭垒技能且失标记数量不少于2
        return player:hasSkill(bojianlei.name) and shiMarks >= 2
    end,

    -- 技能消耗处理函数
    on_cost = function(self, event, target, player, data)
        local room = player.room
        -- 询问玩家是否释放技能
        local answer = room:askToSkillInvoke(player, {
            skill_name = bojianlei.name,
            prompt = "是否释放箭垒技能？",
            cancelable = true
        })
        if answer then
            -- 若玩家选择释放，设置消耗数据为失去2个失标记
            event:setCostData(self, {mark = "@shi", value = 2})
            return true
        end
        return false
    end,

    -- 技能使用时的处理函数
    on_use = function(self, room, effect)
        local player = effect.from
        if not player then
            print("[Jianlei] Error: player is nil!")
            return false
        end
        
        -- 调试输出：检查标记初始值
        local beforeMarks = player:getMark("@shi") or 0
        print("[Jianlei] 移除前标记数量:", beforeMarks)
        
        -- 使用room:removePlayerMark方法减少标记（关键修改点）
        room:removePlayerMark(player, "@shi", 2)
        
        -- 调试输出：检查标记移除后的值
        local afterMarks = player:getMark("@shi") or 0
        print("[Jianlei] 移除后标记数量:", afterMarks)
        
        -- 记录日志
        room:sendLog{
            type = "game_log",
            from = player.id,
            str = "$usedSkill",
            arg = bojianlei.name,
            arg2 = "弃置2个矢标记"
        }

        -- 克隆一张万箭齐发卡牌
        local archery_card = Fk:cloneCard("archery_attack")
        -- 准备使用卡牌的数据
        local use_data = {
            from = player,
            card = archery_card,
            skillName = bojianlei.name
        }
        -- 在房间中使用万箭齐发卡牌
        room:useCard(use_data)
        
        return true
    end
})

-- 返回创建好的箭垒技能对象
return bojianlei